/*******************************************************************************
  * 文件：DryFire_User.c
  * 作者：djy
  * 版本：v1.0.0
  * 日期：2020-11-27
  * 说明：防干烧接口
*******************************************************************************/
#include "DryFire_User.h"
#include "Hardware_ADC.h"
#include "DevError.h"
#include "DevInfor.h"
#include "DevError.h"
#include "StateMachine.h"
#include "NTC.h"
#include "main.h"

static Timer_ts sDryFireTimer;

static void DryFireHandlerHook_100MS(void)
{
    // 100ms回调函数
    DryFireProtect_FireLevelCheck_Hook100MS(Hardware_GetLeftDWQ());

    // 1S回调函数
    if(0 == OS_TimerGetExpiredTimes(&sDryFireTimer)%10)
    {
        U8 u8Ret = DryFireProtectHandler_Hook1S(NTC_GetTemper());
		
		// C3机型，已经干烧
		if(1 == u8Ret && FALSE == Dev_CheckDemoModeFlag())
		{
			// 不在演示模式，报故障
			Dev_SetErrorType(eERR_LEFT,eERR_FIRE_FAIL);
			// 切换到故障模式
			StateMachine_Change(eDEV_ERROR);    
		}
    }
}

void DryFire_Init(void)
{
    DryFireProtect_Reset();
	OS_TimerStart(&sDryFireTimer,100,DryFireHandlerHook_100MS);
}
